package IOStream.FileOutputStreamDome;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * ClassName:IOStream005
 * Package:IOStream
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/28-17:14
 * @Version:v1.0
 */
public class FileOutputStream003 {
    /**FileOutputStream写出数据的两个小问题
     *      1.换行写
     *      再次写出一个换行符
     *          windows：\r\n
     *          Linux:   \n
     *          Max:     \r
     *      细节：在windows操作系统当中,java对回车换行进行优化
     *      虽然完整的是\r\n,但是我们写其中一个\r或者\n
     *      java也可以实现换行,因为java在底层会补全
     * 2.续写(不清空原有数据,继续往里面写)
     *      如果想要续写打开续写开关
     *      开关位置：创建对象的第二个参数
     *      默认false：表示关闭续写,此时创建对象会清空文件
     *      手动传递true：表示打开续写,此时创建对象不会清空文件*/
    public static void main(String[] args) throws IOException {
        //1.换行写
        //创建对象
        FileOutputStream fos = new FileOutputStream("E:\\aaa\\b.txt",true);
        //写出数据
        //kankelaoyezuishuai
        String str1 = "abcde";
        byte[] bytes1 = str1.getBytes();
        fos.write(bytes1);


        //再次写出一个换行符
        String wrap ="\r\n";
        byte[] bytes = wrap.getBytes();
        fos.write(bytes);


        String str2 ="666";
        byte[] bytes2 = str2.getBytes();
        fos.write(bytes2);
        //释放资源
        fos.close();
    }
}
/**FileOutputStream的作用
 * 可以把程序中的数据写到文本文件上,是字节流的基本流
 *
 * 书写步骤：
 * 创建对象,写出数据,释放资源
 *
 * 三部操作的细节
 * 1.创建对象:文件存在,文件不存在,追加写入
 * 2.写入数据：写出整数,写出字节数组,换行写
 * 3.释放资源:关闭通道*/